// console.log('hello node');

/* 
    ES6 是 ECMAScript6 的缩写
    ES有以下缺点：
        1.没有模块化系统
            代码没有模块化 就意味着 代码不能复用

            因此，提出了 CommonJS规范
                1.在JS中，一个JS文件就是一个模块，说白了就是

        2.标准库少

        3.没有标准接口

        4.缺乏管理系统

    Node
        1.在 node 中，通过 require()函数 来引入外部的模块
            require() 可以传递一个文件的路径作为参数，node 将会根据该路径来引入外部模块
            路径，如果是相对路径，必须以 . 或 .. 开头

        2.在 node 中，使用 exports() 来定义向外暴露可以让外部文件识别（看得见）的变量

        3.在 node 中， global 相当于 winodws ，任何定义在全局作用域里的变量都可以在 global 里找到

        4.我们使用 require() 引入外部模块时，使用的就是模块标识，一个路径就是一个模块标识，因为通过这个路径可以找到这个模块

        - 模块分成两大类：
            核心模块
                - 由 node 引擎提供的模块
                - 核心模块的标识就是，模块的名字
                - 例如：var fs = require("fs");// fs 就是一个 核心模块
            文件模块
                - 由用户自己创建的模块
                - 文件模块的标识，就是文件的路径，可以是绝对路径，也可以是相对路径，一般情况下是相对路径
                - 但是要注意：相对路径要以 . 或 .. 开头
*/

exports.x = 20;

//定义函数的时候，可以使用 exports 来让函数也能在别的js文件里调用
exports.add = function(a,b){
    return a+b;
};
exports.mul = function(a,b){
    return a*b;
};
var fs = require("fs");
console.log(fs); // 可以看见 fs 是一个 核心模块
